package cn.wsh.system.listener;

import cn.wsh.system.service.IPermissionScanService;
import org.springframework.beans.factory.annotation.Autowired;

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.annotation.WebListener;

@WebListener
public class PermissionScanListenter implements ServletContextListener {
    @Autowired
    private IPermissionScanService permissionScanService;

    @Override
    public void contextInitialized(ServletContextEvent servletContextEvent) {
        //容器启动结束，会执行这里
        //我们可以在这里扫描我们自定义的注解PreAuthorize ，然后将信息存储到permission
        // 这里业务可能随着我们接口的增多，执行时间会非常的久 不能让它影响整个主进程的启动
        // ??  新开一个异步Thread去跑业务
        new Thread(new Runnable() {
            @Override
            public void run() {
                //执行扫描注解，加permission的业务
                permissionScanService.annoScan();
            }
        }
        ).start();
    }

    @Override
    public void contextDestroyed(ServletContextEvent servletContextEvent) {
        //容器销毁，我们啥事不做
    }
}
